home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2004 April / Gamestar_61_2004-04_dvdb.iso / DVDStar / Editace / hltp.exe / {app} / Applications / QuArK / quarkpy / guiutils.py < prev    next >
Text File  |  2004-01-05  |  3KB  |  89 lines

  1. """   QuArK  -  Quake Army Knife
  2.  
  3. Various utilities for making gui devices.
  4.     
  5. """
  6. #
  7. # Copyright (C) 1996-99 Armin Rigo
  8. # THIS FILE IS PROTECTED BY THE GNU GENERAL PUBLIC LICENCE
  9. # FOUND IN FILE "COPYING.TXT"
  10. #
  11.  
  12. #$Header: /cvsroot/quark/runtime/quarkpy/guiutils.py,v 1.2 2003/01/01 10:08:16 tiglari Exp $
  13.  
  14.  
  15. import quarkx
  16. from quarkpy.maputils import *
  17. #
  18. # FIXME: ugh hideous hack refactoring time!!!
  19. #
  20. from plugins.mapmadsel import menrestsel
  21.  
  22.  
  23.  
  24. def getSetupOption(name, default):
  25.     result = quarkx.setupsubset(SS_MAP, "Options")[name]
  26. #    debug("result: "+`result`)
  27.     if result==None:
  28.       result=default
  29.     return result
  30.  
  31. #
  32. # In LiveEditDialogs, monitors changes in numeric parameters stored as EF1's.
  33. #   returns (1, newvalue) if there's been a change, (0, value) otherwise
  34. #   see plugins.mapbadtexscale for an example of use
  35. #
  36. def dlgNumberCheck(dlg, pack, attribute, defaultvalue, format="%.2f"):
  37.     newvalue, = dlg.src[attribute]
  38. #       debug('pack: '+getattr(pack, attribute))
  39.     if newvalue!=eval(getattr(pack,attribute)):
  40. #           debug("%s : %s"%(`newvalue`, `eval(getattr(pack,attribute))`))
  41.         if newvalue==defaultvalue:
  42. #              debug('clearing')
  43.             quarkx.setupsubset(SS_MAP, "Options")[attribute]=None
  44.         else:
  45.             quarkx.setupsubset(SS_MAP, "Options")[attribute]=format%newvalue
  46.         setattr(pack, attribute, format%newvalue)
  47.         return (1, newvalue)
  48.     return (0, newvalue)    
  49.  
  50. #
  51. # For an object o, uses the parentpopupitems function to
  52. #   construct a menu of popups, one for each object that
  53. #   contains o in the tree hierarchy
  54. #   
  55. #   see plugins/mapmadsel, plugins/mapmovevertex for examples
  56. #     of use
  57. #
  58. def getrestrictor(e):
  59.   try:
  60.     return e.restrictor
  61.   except (AttributeError) : return None
  62.  
  63. def buildParentPopupList(o, parentpopupitems, editor):
  64.     current=o
  65.     list = []
  66.     if editor is None:
  67.         editor = mapeditor()
  68.     restrictor = getrestrictor(editor)
  69.     restricted = 0
  70.   #  while current.name != "worldspawn:b":
  71.     while current != None:
  72.         list.append(parentpopupitems(current, editor, restricted))
  73.         if current==restrictor and menrestsel.state == qmenu.checked:
  74.             list.append(qmenu.sep)
  75.             restricted = 1
  76.         current = current.treeparent;
  77.   #  list.reverse()
  78.     return list    
  79.  
  80.  
  81.  
  82. # $Log: guiutils.py,v $
  83. # Revision 1.2  2003/01/01 10:08:16  tiglari
  84. # fix for console errors on RMB on vertex in restricted selection
  85. #
  86. # Revision 1.1  2002/04/01 08:29:10  tiglari
  87. # start off with some stuff from mapmadsel.py, and abstracted from mapmicrobrush.py
  88. #
  89. #